package com.flower.service;

import com.flower.domain.dto.LoginDto;
import com.flower.domain.dto.buyer.farmer.PageFarmerDto;
import com.flower.domain.entity.Farmer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.flower.domain.vo.PageVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
* @author 86178
* @description 针对表【farmer(花农信息表)】的数据库操作Service
* @createDate 2025-02-17 20:54:03
*/
public interface FarmerService extends IService<Farmer> {

    Farmer login(LoginDto loginDto);

    PageVO<Farmer> pageList(PageFarmerDto pageFarmerDto);

    Farmer findFarmerByEmail(String email);

    /**
     * 获取当前登录农户信息
     */
    Farmer getUserInfo();

    /**
     * 更新农户信息
     */
    void updateUserInfo(Farmer farmer);

    Page<Farmer> getFarmerList(String keyword, Integer page, Integer size);

    void addFarmer(Farmer farmer);

    void updateFarmer(Farmer farmer);

    void deleteFarmer(Integer id);

    Farmer getFarmerById(Integer id);

    /**
     * 检查用户名是否已存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean isUsernameExists(String username);

    /**
     * 检查用户名是否已存在（排除指定ID的用户）
     * @param username 用户名
     * @param excludeId 要排除的用户ID
     * @return 是否存在
     */
    boolean isUsernameExists(String username, Integer excludeId);
    
    /**
     * 更新用户角色
     * @param userId 用户ID
     * @param role 角色
     * @return 是否成功
     */
    boolean updateRole(Integer userId, String role);
}
